var APP_Update_Tool = {
	canCheck: true, //是否可以检查更新
	checkInterval: 60 * 60 * 1000, //检查间隔
	checkUpdate(params) {
		params = params || {};
		console.log(params)
		
		if (!params.forceCheck) { //不是强制显示的，则按规定间隔来刷新更新请求
			if (!this.canCheck) {
				console.log("app update check timeout");
				return;
			}
		
			this.canCheck = false;
			setTimeout(() => {
				this.canCheck = true;
			}, this.checkInterval);
		}

		var that = this;
		//检查页面的更新状态
		uni.$emit("AppUpdate_CheckState");
		uni.$once("AppUpdate_CheckStateResult", (checkRes) => {
			console.log(checkRes);
			
			if (checkRes.upgrading) { //页面正在下载升级,不进行升级检查
				if(params.forceCheck){	//强制显示页面
					uni.navigateTo({
						url: "/pages/appUpdateModel/appUpdateModel"
					});
				}
				
				return;
			}
			
			//请求接口
			this.upgrade((res) => {
				params.success && params.success(res);
				if (params.checkOnly || !res)  //只是检查是否有更新，直接返回
					return;
				
				res.isForceUpgrade = res.isForceUpgrade ? true : false;
				if (!params.forceCheck && !res.isForceUpgrade) { //如果不是强制显示更新，而且该版本也不是强制更新的
					//检查是否取消过
					var APPUpdateLater = uni.getStorageSync("APPUpdateLater");
					if (APPUpdateLater == new Date().getDate()) { //取消过，当天不再显示
						console.log("APPUpdateLater:" + APPUpdateLater);
						return;
					}
				}

				//传送更新参数
				uni.$emit("AppUpdateShow", {
					data: res
				})
				
				//监听窗体关闭
				uni.$once("AppUpdateModalHide", function(hideData){
					console.log(hideData);
					if(hideData.state == 1){  //更新失败
						params.fail && params.fail();
						 
						uni.showModal({
							title: '提示',
							content: '更新失败，要打开浏览器下载吗？',
							confirmText: "浏览器下载",
							success: res => {
								if (res.confirm) {
									plus.runtime.openURL(hideData.APKURL);
								}
							}
						});
					}
				})
				

				uni.navigateTo({
					url: "/pages/appUpdateModel/appUpdateModel"
				});
			});
		})
	},
	// 检测更新
	upgrade(callback) {
		console.log("app update check start");
		
		//模拟返回
		callback && callback({
			isForceUpgrade:false  ,//是否强制更新，1强制,强制更新时，不会显示取消下载按键
			info:"1、修复了大量bug11;2、增加新功能，xx体验提升，速度快2;3、增加新功能，xx体验提升3，速度快;4、1增加新功能，xx体验提升，速度快;"  ,//升级内容
			version: '1.0.1',
			url: 'http://www.baidu.com',
		});
		
		//此处进行ajax请求更新数据...
	}
};


export default APP_Update_Tool;
